#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 1;
int n, colors[MAXN], cnt[3]; // 颜色数组和计数数组
int main() {
  cin >> n; // 输入颜色的数量
  for (int i = 1; i <= n; ++i) {
    cin >> colors[i]; // 输入每个颜色
    ++cnt[colors[i]]; // 统计每种颜色的数量
  }

  int count1 = 0, count2 = 0;       // 统计颜色1和颜色2的数量
  for (int i = 1; i <= cnt[0]; ++i) // 处理前半部分，检查颜色0的区域
    if (colors[i] == 1)
      count1++; // 统计颜色1的数量
    else if (colors[i] == 2)
      count2++; // 统计颜色2的数量

  int extra0 = 0, extra1 = 0; // 统计额外的颜色0和颜色1
  for (int i = cnt[0] + cnt[1] + 1; i <= n; ++i) // 处理后半部分，
    if (colors[i] == 1)
      extra1++; // 统计额外的颜色1
    else if (colors[i] == 0)
      extra0++; // 统计额外的颜色0

  // 输出结果：计算颜色1和颜色2的数量，加上额外的颜色1和颜色0，减去颜色0和颜色2的最小值
  cout << count1 + count2 + extra1 + extra0 - min(extra0, count2)
       << endl; // 输出结果
  return 0;     // 程序结束
}
